perm filename SPRINT.FAI[SCR,LCS] blob
sn#374035 filedate 1978-08-11 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE SPRINT
C00008 ENDMK
C⊗;
TITLE SPRINT
INTERNAL PRINT,IFIX,FLOAT,FORNAM,RNDINT,RAND,PARAM
EXTERNAL .COMM.,C,P,PL,FILES. ;WRITING ON DSK (DEV.1 ONLY!)
;FORTRAN CALLABLE RANDOM NUMBER GENERATOR
;
;USE CALL RNDINT TO INITIALIZE THE GENERATOR
; (THE GENERATOR IS LOADED INITIALIZED)
;USE RAND(XL,XH) AS A FUNCTION TO RETURN THE NEXT
; RANDOM NUMBER BETWEEN XL AND XH
; (XL,XH ARE FLOATING POINT,RAND RETURNS
; FLOATING POINT)
;
RNDINT: 0
MOVE 0,[756132257563]
MOVEM 0,R1
ADDI 0,2
MOVEM 0,R2
JRA 16,0(16)
R1: 756132257563
R2: 756132257565
RAND: 0
MOVEM 1,TEMP
MOVE 0,@0(16)
MOVE 1,@1(16)
FSBR 1,0
MOVEM 0,LLIM#
MOVE 0,R1
ADD 0,R2
EXCH 0,R2
MOVEM 0,R1
LSH 0,-11
FSC 0,200
FMP 0,1
FAD 0,LLIM
MOVE 1,TEMP
JRA 16,2(16)
TEMP: 0
IFIX: 0 ;REMOVE THESE 6 LINES AT OTHER SITES.
KIFIX 0,@(16)
JRA 16,1(16)
FLOAT: 0
FLTR 0,@(16)
JRA 16,1(16)
A←1
B←2
CC←3
D←4
PP←17
LOOP: PUSHJ PP,TYI ; THIS PRINTS FILE FOR22.DAT ON LPT
POPJ PP, ; AND THEN ZEROS FOR22.DAT.
CAIN A,15
JRST LOOP
CAIN A,12
JRST MK1
CAIN A,53
JRST MK2
TRNN B,2
JRST OUTIT
MOVEI B,0
MOVE CC,A
MOVEI A,15
PUSHJ PP,TYO
MOVEI A,12
PUSHJ PP,TYO
MOVE A,CC
OUTIT: PUSHJ PP,TYO
JRST LOOP
MK1: TRO B,2
JRST LOOP
MK2: TRNN B,2
JRST OUTIT
MOVEI B,0
JRST LOOP
PRINT: 0
INIT 12,0
SIXBIT /LPT/
XWD OBUF,
CALLI 12
OUTBUF 12,2
COMDLP: PUSHJ PP,DNIT
PUSHJ PP,LOOP
EXIT: MOVEI A,14
RELEASE 11,0
RELEASE 12,0
JRA 16,(16)
DNIT: RELEASE 11,0
INIT 11,0
SIXBIT /DSK/
IBUF
CALLI 12
SETZM FILNAM+3
LOOKUP 11,FILNAM
CALLI 12
INBUF 11,2
POPJ PP,
TYI: SOSLE IBUF+2
JRST OKIN
IN 11,0
JRST OKIN
STATZ 11,20000
POPJ PP,
CALLI 12
OKIN: ILDB A,IBUF+1
JUMPE A,TYI
AOS (PP)
POPJ PP,
TYO: SOSG OBUF+2
OUTPUT 12,0
IDPB A,OBUF+1
POPJ PP,
IBUF: BLOCK 3
OBUF: BLOCK 3
FILNAM: SIXBIT/FOR22/
SIXBIT/DAT/
0
0
PDL: BLOCK 10
FORNAM: 0 ;CALL FORNAM(NAME,EXT)
;CHANGES NAMES TO SIXBIT THIS IS TO PUT EXTENSIONS OTHER
MOVE 0,@0(16) ;THAN .DAT ON OUTPUT
MOVEM 0,FN#
MOVE 1,[POINT 7,FN]
INTF3: MOVE 2,[POINT 6,NAM]
SETZM NAM
MOVEI 3,5
INTF1: ILDB 0,1
CAIN 0," "
JRST INTF2
SUBI 0,40
IDPB 0,2
SOJG 3,INTF1
INTF2: MOVE 0,@1(16)
MOVEM 0,EX#
MOVE 1,[POINT 7,EX]
EXTF3: MOVE 2,[POINT 6,EXT]
SETZM EXT
MOVEI 3,5
EXTF1: ILDB 0,1
CAIN 0," "
JRST EXTF2
SUBI 0,40
IDPB 0,2
SOJG 3,EXTF1
EXTF2: MOVE 0,NAM#
MOVEM 0,FILES.
MOVE 0,EXT#
MOVEM 0,FILES.+1
JRA 16,2(16)
;C FUNCTION PARAM(X,K)
;C COMMON J,L /P/P(1) /PL/PL(1) /C/T,NWZZ,IT3,T6,NW,TDUR,A,
;C 1 T2,T4,BY,KODE,NPAR,LP,TBG,AC,NPA,BX,IDF,PM,NM,PAR,PX2
PARAM: 0 ;C K=0
SETZ 2,
; IF K IS NOT ZERO UPON RETURN, THEN WE'VE FOUND INFO IN OTHER PARAM.
MOVE 0,@(16) ;C PARAM=X
CAMG 0,[-9999.0] ;CC IF(X.GT.-9999.0)RETURN
CAMG 0,[-10000.0] ;CC IF(X.LE.-10000.0)RETURN
JRST PAR2 ;GO TO PAR2
MOVN 2,0
FADR 2,[-9999.0] ;CC K=-(X+9999.0)*100.+.1
FMPR 2,[100.0]
FADR 2,[0.1] ;FOR ROUND-OFF
KIFIX 2,2
MOVE 0,P-1(2) ;CC PARAM=P(K) ;AC 0 = PARAM
; GET DATA FROM PARAM K
MOVE 1,PL-1(2) ;CC PM=PL(K)
MOVEM 1,C+=18
MOVE 1,.COMM.+1 ;CC IF(L.NE.2)RETURN ;;L=LPAR (CURRENT PARAM#)
CAIE 1,2 ;C L=CALLING PARAM NUM., K=PARAM REFERRED TO.
JRST PAR2 ;GO TO PAR2
CAIN 2,2 ;CC IF(K.EQ.2)PARAM=PX2
MOVE 0,C+=21;MUST USE 'UNPROCESSED' FORM OF P2 (I.E. NO 'TEMPO' CHANGES)
PAR2: MOVEM 2,@1(16) ;SEND BACK VALUE OF K
JRA 16,2(16) ;CC END
END